package aufgabe7;

import static org.junit.Assert.*;

import org.junit.Before;
import org.junit.Test;

public class InvestierungsTest {

	int[] kursWerte, kursWerte2;
	int[] kursWerteErg, kursWerte2Erg;
	int[] werte1, werte2, werte3;
	int[] erg1, erg2, erg3;

	@Before
	public void setUp() throws Exception {
		kursWerte = new int[8];
		kursWerte[0] = 4;
		kursWerte[1] = 8;
		kursWerte[2] = 4;
		kursWerte[3] = 9;
		kursWerte[4] = 1;
		kursWerte[5] = 2;
		kursWerte[6] = 8;
		kursWerte[7] = 0;
		
		kursWerte2 = new int[8];
		kursWerte2[0] = 8;
		kursWerte2[1] = 7;
		kursWerte2[2] = 6;
		kursWerte2[3] = 5;
		kursWerte2[4] = 4;
		kursWerte2[5] = 3;
		kursWerte2[6] = 2;
		kursWerte2[7] = 1;
		
		kursWerteErg = new int[2];
		kursWerteErg[0] = 4;
		kursWerteErg[1] = 6;
		
		kursWerte2Erg = new int[2];
		kursWerte2Erg[0] = 0;
		kursWerte2Erg[1] = 0;
		
		werte1 = new int[2];
		werte1[0] = 1;
		werte1[1] = 2;

		werte2 = new int[3];
		werte2[0] = 2;
		werte2[1] = 1;
		werte2[2] = 3;

		werte3 = new int[4];
		werte3[0] = 2;
		werte3[1] = 3;
		werte3[2] = 1;
		werte3[3] = 4;

		erg1 = new int[2];
		erg1[0] = 0;
		erg1[1] = 1;

		erg2 = new int[2];
		erg2[0] = 1;
		erg2[1] = 2;

		erg3 = new int[2];
		erg3[0] = 2;
		erg3[1] = 3;
	}

	@Test
	public void testInvestierungen1() {
		assertArrayEquals(kursWerteErg, InvestierungsRechner.besteInvestierung(kursWerte));
		assertArrayEquals(kursWerte2Erg, InvestierungsRechner.besteInvestierung(kursWerte2));
		assertArrayEquals(erg1, InvestierungsRechner.besteInvestierung(werte1));
		assertArrayEquals(erg2, InvestierungsRechner.besteInvestierung(werte2));
		assertArrayEquals(erg3, InvestierungsRechner.besteInvestierung(werte3));
	}

	@Test
	public void testInvestierungen2() {
		assertArrayEquals(kursWerteErg, InvestierungsRechner.besteInvestierung2(kursWerte));
		assertArrayEquals(kursWerte2Erg, InvestierungsRechner.besteInvestierung2(kursWerte2));
		assertArrayEquals(erg1, InvestierungsRechner.besteInvestierung2(werte1));
		assertArrayEquals(erg2, InvestierungsRechner.besteInvestierung2(werte2));
		assertArrayEquals(erg3, InvestierungsRechner.besteInvestierung2(werte3));
	}

	@Test
	public void testInvestierungen3() {
		assertArrayEquals(kursWerteErg, InvestierungsRechner.besteInvestierung3(kursWerte));
		assertArrayEquals(kursWerte2Erg, InvestierungsRechner.besteInvestierung3(kursWerte2));
		assertArrayEquals(erg1, InvestierungsRechner.besteInvestierung3(werte1));
		assertArrayEquals(erg2, InvestierungsRechner.besteInvestierung3(werte2));
		assertArrayEquals(erg3, InvestierungsRechner.besteInvestierung3(werte3));
	}

}
